# 使用示例 - 不要运行这个文件，这只是展示用法

from util.api_response import APIResponse
from util.exception_handler import handle_exceptions
from flask import Flask, request

app = Flask(__name__)

# 方法1: 在API端点中直接使用
@app.route('/api/dip/analyze_medical_text', methods=['POST'])
@handle_exceptions  # 添加这个装饰器自动处理异常
def analyze_medical_text():
    medical_text = request.get_data(as_text=True)
    
    # 检查输入参数
    if not medical_text or medical_text.strip() == "":
        return APIResponse.error("医疗文本不能为空")
    
    bl = DipSeriesBlEntrance()
    
    # 调用业务逻辑
    patient_json = ai_analyze_medica.call_bl_agent(medical_text)
    
    # 检查是否返回错误
    error_response = APIResponse.check_error_result(patient_json, "病历分析失败")
    if error_response:
        return error_response
    
    # 继续处理...
    result = bl.entrance_with_return(patient_json)
    
    # 返回成功响应
    return APIResponse.success(result, "DIP分析完成")


# 方法2: 在业务逻辑中使用
def entrance(self, medical_text):
    try:
        # 病历分析
        patient_json = ai_analyze_medica.call_bl_agent(medical_text)
        
        # 检查业务层错误
        error_response = APIResponse.check_error_result(patient_json, "病历分析失败")
        if error_response:
            return error_response
        
        # 继续处理...
        converted_data = self.convert_patient_data(patient_data)
        if not converted_data:
            return APIResponse.error("数据转换失败")
        
        # 返回成功结果
        return APIResponse.success(result, "DIP分析完成")
        
    except Exception as e:
        return APIResponse.error("DIP分析过程中发生错误", str(e)) 